(define (make-monitored f)
    (let  
        ((calls 0))
        (lambda (x)
            (if (eq? x `how-many-calls?)
                calls
                (begin
                    (set! calls (+ calls 1))
                    (f x)
                )
            )   
        )
    )   
)

(define s (make-monitored sqrt))
(display (s 100))
(newline)
(display (s 81))
(newline)
(display (s `how-many-calls?))
(exit)
